Connected sensing devices, such as, cameras, microphones, motion door-window, temperature, water, and energy sensors, are increasingly permeating our homes and buildings, with an estimated 50 billion of these such devices in use by 2020. Meanwhile, platforms that host applications for processing data from such devices are rapidly emerging. Examples include Wink™, Vera™, and HomeOS™. These platforms use a low-cost computing device (called a “hub”) to communicate with sensing devices and to run applications.
While such platforms provide applications with unified programming abstractions to receive sensed data from devices and trigger actuators (such as thermostats, light switches, and sirens), they do not provide applications with any means to tolerate faults that regularly occur in homes and buildings, such as hub and driver crashes, home network failures, router failures, network partitions, and sensor failures.
Consequently, developing robust applications for sensing devices today is difficult; developers must implement their own failure detection and recovery mechanisms. Hence, a robust platform for delivery of server data and execution of applications is needed.